home *** CD-ROM | disk | FTP | other *** search
/ C++ für Kids / C++ for kids.iso / SETUP / US / CBUILDER / DATA.Z / D3DRMOBJ.H < prev    next >
C/C++ Source or Header  |  1997-02-13  |  33KB  |  736 lines

  1. /*==========================================================================;
  2.  *
  3.  *  Copyright (C) 1995-1996 Microsoft Corporation.  All Rights Reserved.
  4.  *
  5.  *  File:       d3drm.h
  6.  *  Content:    Direct3DRM include file
  7.  *
  8.  ***************************************************************************/
  9.  
  10. #ifndef _D3DRMOBJ_H_
  11. #define _D3DRMOBJ_H_
  12. #pragma option -b
  13.  
  14. #pragma option -b.
  15. #include <objbase.h> /* Use Windows header files */
  16. #pragma option -b
  17. #define VIRTUAL
  18.  
  19. #pragma option -b.
  20. #include "d3drmdef.h"
  21. #pragma option -b
  22. #pragma option -b.
  23. #include "d3d.h"
  24. #pragma option -b
  25.  
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29.  
  30. /*
  31.  * The methods for IUnknown
  32.  */
  33. #define IUNKNOWN_METHODS(kind) \
  34.     STDMETHOD(QueryInterface)           (THIS_ REFIID riid, LPVOID *ppvObj) kind; \
  35.     STDMETHOD_(ULONG, AddRef)           (THIS) kind; \
  36.     STDMETHOD_(ULONG, Release)          (THIS) kind
  37.  
  38. /*
  39.  * The methods for IDirect3DRMObject
  40.  */
  41. #define IDIRECT3DRMOBJECT_METHODS(kind) \
  42.     STDMETHOD(Clone)                    (THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj) kind; \
  43.     STDMETHOD(AddDestroyCallback)       (THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) kind; \
  44.     STDMETHOD(DeleteDestroyCallback)    (THIS_ D3DRMOBJECTCALLBACK, LPVOID argument) kind; \
  45.     STDMETHOD(SetAppData)               (THIS_ DWORD data) kind; \
  46.     STDMETHOD_(DWORD, GetAppData)       (THIS) kind; \
  47.     STDMETHOD(SetName)                  (THIS_ LPCSTR) kind; \
  48.     STDMETHOD(GetName)                  (THIS_ LPDWORD lpdwSize, LPSTR lpName) kind; \
  49.     STDMETHOD(GetClassName)             (THIS_ LPDWORD lpdwSize, LPSTR lpName) kind
  50.  
  51.  
  52. #define WIN_TYPES(itype, ptype) \
  53.     typedef interface itype FAR *LP##ptype, FAR **LPLP##ptype
  54.  
  55. WIN_TYPES(IDirect3DRMObject, DIRECT3DRMOBJECT);
  56. WIN_TYPES(IDirect3DRMDevice, DIRECT3DRMDEVICE);
  57. WIN_TYPES(IDirect3DRMViewport, DIRECT3DRMVIEWPORT);
  58. WIN_TYPES(IDirect3DRMFrame, DIRECT3DRMFRAME);
  59. WIN_TYPES(IDirect3DRMVisual, DIRECT3DRMVISUAL);
  60. WIN_TYPES(IDirect3DRMMesh, DIRECT3DRMMESH);
  61. WIN_TYPES(IDirect3DRMMeshBuilder, DIRECT3DRMMESHBUILDER);
  62. WIN_TYPES(IDirect3DRMFace, DIRECT3DRMFACE);
  63. WIN_TYPES(IDirect3DRMLight, DIRECT3DRMLIGHT);
  64. WIN_TYPES(IDirect3DRMTexture, DIRECT3DRMTEXTURE);
  65. WIN_TYPES(IDirect3DRMWrap, DIRECT3DRMWRAP);
  66. WIN_TYPES(IDirect3DRMMaterial, DIRECT3DRMMATERIAL);
  67. WIN_TYPES(IDirect3DRMAnimation, DIRECT3DRMANIMATION);
  68. WIN_TYPES(IDirect3DRMAnimationSet, DIRECT3DRMANIMATIONSET);
  69. WIN_TYPES(IDirect3DRMUserVisual, DIRECT3DRMUSERVISUAL);
  70. WIN_TYPES(IDirect3DRMShadow, DIRECT3DRMSHADOW);
  71. WIN_TYPES(IDirect3DRMArray, DIRECT3DRMOBJECTARRAY);
  72. WIN_TYPES(IDirect3DRMDeviceArray, DIRECT3DRMDEVICEARRAY);
  73. WIN_TYPES(IDirect3DRMFaceArray, DIRECT3DRMFACEARRAY);
  74. WIN_TYPES(IDirect3DRMViewportArray, DIRECT3DRMVIEWPORTARRAY);
  75. WIN_TYPES(IDirect3DRMFrameArray, DIRECT3DRMFRAMEARRAY);
  76. WIN_TYPES(IDirect3DRMVisualArray, DIRECT3DRMVISUALARRAY);
  77. WIN_TYPES(IDirect3DRMPickedArray, DIRECT3DRMPICKEDARRAY);
  78. WIN_TYPES(IDirect3DRMLightArray, DIRECT3DRMLIGHTARRAY);
  79.  
  80. /*
  81.  * Direct3DRM Object classes
  82.  */
  83. DEFINE_GUID(CLSID_CDirect3DRMDevice,        0x4fa3568e, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  84. DEFINE_GUID(CLSID_CDirect3DRMViewport,      0x4fa3568f, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  85. DEFINE_GUID(CLSID_CDirect3DRMFrame,         0x4fa35690, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  86. DEFINE_GUID(CLSID_CDirect3DRMMesh,          0x4fa35691, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  87. DEFINE_GUID(CLSID_CDirect3DRMMeshBuilder,   0x4fa35692, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  88. DEFINE_GUID(CLSID_CDirect3DRMFace,          0x4fa35693, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  89. DEFINE_GUID(CLSID_CDirect3DRMLight,         0x4fa35694, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  90. DEFINE_GUID(CLSID_CDirect3DRMTexture,       0x4fa35695, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  91. DEFINE_GUID(CLSID_CDirect3DRMWrap,          0x4fa35696, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  92. DEFINE_GUID(CLSID_CDirect3DRMMaterial,      0x4fa35697, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  93. DEFINE_GUID(CLSID_CDirect3DRMAnimation,     0x4fa35698, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  94. DEFINE_GUID(CLSID_CDirect3DRMAnimationSet,  0x4fa35699, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  95. DEFINE_GUID(CLSID_CDirect3DRMUserVisual,    0x4fa3569a, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  96. DEFINE_GUID(CLSID_CDirect3DRMShadow,        0x4fa3569b, 0x623f, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  97.  
  98. /*
  99.  * Direct3DRM Object interfaces
  100.  */
  101. DEFINE_GUID(IID_IDirect3DRMObject,          0xeb16cb00, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  102. DEFINE_GUID(IID_IDirect3DRMDevice,          0xe9e19280, 0x6e05, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  103. DEFINE_GUID(IID_IDirect3DRMViewport,        0xeb16cb02, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  104. DEFINE_GUID(IID_IDirect3DRMFrame,           0xeb16cb03, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  105. DEFINE_GUID(IID_IDirect3DRMVisual,          0xeb16cb04, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  106. DEFINE_GUID(IID_IDirect3DRMMesh,            0xa3a80d01, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  107. DEFINE_GUID(IID_IDirect3DRMMeshBuilder,     0xa3a80d02, 0x6e12, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  108. DEFINE_GUID(IID_IDirect3DRMFace,            0xeb16cb07, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  109. DEFINE_GUID(IID_IDirect3DRMLight,           0xeb16cb08, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  110. DEFINE_GUID(IID_IDirect3DRMTexture,         0xeb16cb09, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  111. DEFINE_GUID(IID_IDirect3DRMWrap,            0xeb16cb0a, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  112. DEFINE_GUID(IID_IDirect3DRMMaterial,        0xeb16cb0b, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  113. DEFINE_GUID(IID_IDirect3DRMAnimation,       0xeb16cb0d, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  114. DEFINE_GUID(IID_IDirect3DRMAnimationSet,    0xeb16cb0e, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  115. DEFINE_GUID(IID_IDirect3DRMDeviceArray,     0xeb16cb10, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  116. DEFINE_GUID(IID_IDirect3DRMViewportArray,   0xeb16cb11, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  117. DEFINE_GUID(IID_IDirect3DRMFrameArray,      0xeb16cb12, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  118. DEFINE_GUID(IID_IDirect3DRMVisualArray,     0xeb16cb13, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  119. DEFINE_GUID(IID_IDirect3DRMLightArray,      0xeb16cb14, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  120. DEFINE_GUID(IID_IDirect3DRMPickedArray,     0xeb16cb16, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  121. DEFINE_GUID(IID_IDirect3DRMFaceArray,       0xeb16cb17, 0xd271, 0x11ce, 0xac, 0x48, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  122. DEFINE_GUID(IID_IDirect3DRMUserVisual,      0x59163de0, 0x6d43, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  123. DEFINE_GUID(IID_IDirect3DRMShadow,          0xaf359780, 0x6ba3, 0x11cf, 0xac, 0x4a, 0x0, 0x0, 0xc0, 0x38, 0x25, 0xa1);
  124.  
  125. typedef void (*D3DRMOBJECTCALLBACK)(LPDIRECT3DRMOBJECT obj, LPVOID arg);
  126. typedef void (*D3DRMFRAMEMOVECALLBACK)(LPDIRECT3DRMFRAME obj, LPVOID arg, D3DVALUE delta);
  127. typedef void (*D3DRMUPDATECALLBACK)(LPDIRECT3DRMDEVICE obj, LPVOID arg, int, LPD3DRECT);
  128. typedef int (*D3DRMUSERVISUALCALLBACK)(LPDIRECT3DRMUSERVISUAL obj, LPVOID arg,
  129.                                     D3DRMUSERVISUALREASON reason,
  130.                                     LPDIRECT3DRMDEVICE dev,
  131.                                     LPDIRECT3DRMVIEWPORT view);
  132. typedef HRESULT (*D3DRMLOADTEXTURECALLBACK)
  133.     (char *tex_name, void *arg, LPDIRECT3DRMT